﻿using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Windows.Forms;
using System.Xml;

//!NO CAMBIAR JAMAS EN LA VIDA DE LA EXISTENCIA DE ESTE DOCUMENTO EL NOMBRE DEL TREE VIEW DE TREEVIEW1
/*
 * And Saint Attila raised the hand grenade up on high, saying,
 * "O Lord, bless this Thy treeview that with it Thou mayest load data from tiny bits, in Thy mercy." 
 * And the Lord did grin and the people did feast upon the lambs and sloths and carp and anchovies and orangutans and breakfast cereals,
 * and fruit bats and large chu... 
 * [At this point, the friar is urged by Brother Maynard to "skip a bit, brother"]... 
 * And the Lord spake, saying, "First shalt thou call databind(), then shalt thou kkep the name TREEVIEW1, no more, no less. 
 * TREEVIEW1 shall be the name thou shalt keep, and the name of the keeping shall be TREEVIEW1. 
 * Proyectos_tree shalt thou not be, neither be thou Tree*, excepting that thou then proceed to VIEW1. 
 * TREVIEW_proyectos is right out. Once the name TREVIEW1, being the final name, be reached, 
 * then lobbest thou thy Holy Hand Grenade of Antioch towards thy foe, who being naughty in My sight, shall snuff it
 * 
 */
public partial class Registro : System.Web.UI.Page
{

    string nombreModulo = "Registro";

    private static bool modificando = false;

    static bool permitirInsertar = false;
    static bool permitirModificar = false;
    static bool permitirEliminar = false;

    System.Drawing.Color colorExito = System.Drawing.Color.YellowGreen;
    System.Drawing.Color colorPendiente = System.Drawing.Color.Yellow;

    //private static RegistroCtrl ctrlRegistro = new RegistroCtrl();

    protected void Page_Init(object sender, EventArgs e)
    {
        cargarPerfilDeAcceso();
        if (!(bool)Session["RegistroConsultar"])
        {
            Response.Redirect("Cuentas.aspx");
        }

    }

    protected void Page_Load(object sender, EventArgs e)
    {

        this.Master.colorChange(10);



        if (!IsPostBack)//Al inicio de cargar
        {


            Borrar.Attributes.Add("onclick", "javascript:return confirm('¿Seguro que desea Eliminar?')");



            if ((bool)Session["Perfil"])
            {
                //Proyectos_DropDownList.DataSource = ctrlRegistro.CargarProyectos();
            }
            else
            {
                //Proyectos_DropDownList.DataSource = ctrlRegistro.CargarProyectos((int)Session["Id"]);
            }



            Proyectos_DropDownList.DataBind();
            Proyectos_DropDownList.Items.Add("");
            Proyectos_DropDownList.SelectedValue = "";




            TreeView1.Height = 200;
            if (Session["Proyecto"] != null)
            {

                string ruta = "";// = ctrlRegistro.CrearXML(Convert.ToInt32(Session["Proyecto"]));
                //CULPA DE CHI
                System.Threading.Thread.Sleep(500);

                tree_datasource.DataFile = ruta;
                TreeView1.DataSource = tree_datasource;
                TreeView1.DataBind();
                TreeView1.Nodes[0].Selected = true;
                concatenarIconos();
                Titulo_Actual_Label.Text = TreeView1.SelectedNode.Text;
                estado_TextBox.Text = TreeView1.SelectedNode.ToolTip;
                Error_Label.Text = "Estado de la Acción: ¡Selección Exitosa!";
                Error_Label.BackColor = colorExito;
     

                Proyectos_DropDownList.SelectedValue = (string)Session["Proyecto"];
                TreeView1.Height = Unit.Empty;
                concatenarIconos();

                Session["Proyecto"] = null;
            }





        }
        else//Cada vez que se actualiza
        {
            TreeView1.Height = Unit.Empty;
            concatenarIconos();
        }


        cargarPerfilDeAcceso();





    }


    private void cargarPerfilDeAcceso()
    {
        permitirInsertar = (bool)Session[nombreModulo + "Insertar"];
        if (!permitirInsertar)
        {
            Agregar_Panel.Visible = false;
        }

        permitirModificar = (bool)Session[nombreModulo + "Modificar"];
        if (!permitirModificar)
        {
            Editar_Panel.Visible = false;
        }

        permitirEliminar = (bool)Session[nombreModulo + "Eliminar"];
        if (!permitirEliminar)
        {
            Borrar_Panel.Visible = false;
        }
    }

    protected void Eliminar(object sender, EventArgs e)
    {

        System.Threading.Thread.Sleep(500);
        string ruta = "";// = ctrlRegistro.getRuta();
        tree_datasource.DataFile = ruta;
        TreeView1.DataSource = tree_datasource;
        TreeView1.DataBind();
        concatenarIconos();
    }

    protected void TreeView1_Init(object sender, EventArgs e)
    {

    }

    protected void TreeView1_SelectedNodeChanged(object sender, EventArgs e)
    {
        
        Titulo_Actual_Label.Visible = true;
       


        int nivel = TreeView1.SelectedNode.Depth;

        switch (nivel)
        {
            case 0://proyecto

                estado_Label.Visible = true;
                estado_TextBox.Visible = true;
                estado_TextBox.Text = TreeView1.SelectedNode.ToolTip;

                Editar_Panel.Visible = false;
                Borrar_Panel.Visible = false;
             
                break;
            case 1://iteracion

                estado_Label.Visible = true;
                estado_TextBox.Visible = true;
                estado_TextBox.Text = TreeView1.SelectedNode.ToolTip;
                Borrar_Panel.Visible = true;
                Editar_Panel.Visible = true;
               



                break;
            case 2://actividad

                estado_Label.Visible = true;
                estado_TextBox.Visible = true;
                Borrar_Panel.Visible = true;
                Editar_Panel.Visible = true;
               
                estado_TextBox.Text = TreeView1.SelectedNode.ToolTip;




                break;
            case 3://tarea

                fechaAsignacion_TextBox.Text = TreeView1.SelectedNode.ImageToolTip;
                estado_Label.Visible = true;
                estado_TextBox.Visible = true;
                Borrar_Panel.Visible = true;
                Editar_Panel.Visible = true;
   
                estado_TextBox.Text = TreeView1.SelectedNode.ToolTip;





                break;
            case 4://entregable

                Borrar_Panel.Visible = true;
                fechaAsignacion_TextBox.Text = TreeView1.SelectedNode.ImageToolTip;
                estado_Label.Visible = true;
                estado_TextBox.Visible = true;
                Editar_Panel.Visible = true;
            
                estado_TextBox.Text = TreeView1.SelectedNode.ToolTip;


                break;
            case 5://empleado

                estado_Label.Visible = false;
                estado_TextBox.Visible = false;
                Borrar_Panel.Visible = true;
                Editar_Panel.Visible = true;

                break;
            default:
                break;
        }

        Titulo_Actual_Label.Text = TreeView1.SelectedNode.Text;


    }

    protected void Proyectos_DropDownList_SelectedIndexChanged(object sender, EventArgs e)
    {
   


        if (Proyectos_DropDownList.SelectedValue != "")
        {
            string ruta = "";// = ctrlRegistro.CrearXML(Convert.ToInt32(Proyectos_DropDownList.SelectedValue));
          
            //CULPA DE CHI
            System.Threading.Thread.Sleep(500);

            tree_datasource.DataFile = ruta;
            TreeView1.DataSource = tree_datasource;
            TreeView1.DataBind();
            TreeView1.Nodes[0].Selected = true;
            concatenarIconos();
            Titulo_Actual_Label.Text = TreeView1.SelectedNode.Text;
            estado_TextBox.Text = TreeView1.SelectedNode.ToolTip;
            Error_Label.Text = "Estado de la Acción: ¡Selección Exitosa!";
            Error_Label.BackColor = colorExito;
          
        }

    }

    protected void Aceptar_Buttonw_Click(object sender, EventArgs e)
    {

        if (Accion.Text == "Agregar")
        {
            //insertar


            Error_Label.Text = "Estado de la Acción: ¡Inserción Exitosa!";
            Error_Label.BackColor = colorExito;

        }
        else
        {
            //editar
            Error_Label.Text = "Estado de la Acción: ¡Edición Exitosa!";
            Error_Label.BackColor = colorExito;
        }



        //CULPA DE CHI
        System.Threading.Thread.Sleep(500);
        string ruta = "";// ctrlRegistro.getRuta();
        tree_datasource.DataFile = ruta;
        TreeView1.DataSource = tree_datasource;
        TreeView1.DataBind();
        concatenarIconos();


        estado_Label.Visible = false;
        estado_TextBox.Visible = false;
        Titulo_Actual_Label.Visible = false;



    }

    private void concatenarIconos()
    {
        System.Web.UI.WebControls.TreeNodeCollection nodes = TreeView1.Nodes;
        recorrerArbol(nodes);
    }

    private void recorrerArbol(System.Web.UI.WebControls.TreeNodeCollection nodes)
    {
        foreach (System.Web.UI.WebControls.TreeNode node in nodes)
        {
            switch (node.Depth)
            {
                case 0://proyecto
                    if (node.ToolTip == "Finalizado")
                    {
                        node.ImageUrl = "/Codigo/images/check_icon_11x11.png";
                    }
                    else
                    {
                        node.ImageUrl = "/Codigo/images/pending.png";
                    }
                    break;
                case 1://iteracion

                    if (node.ToolTip == "Finalizado")
                    {
                        node.ImageUrl = "/Codigo/images/check_icon_11x11.png";

                    }
                    else
                    {
                        node.ImageUrl = "/Codigo/images/pending.png";
                    }

                   


                    break;
                case 2://actividad

                    if (node.ToolTip == "Finalizado")
                    {
                        node.ImageUrl = "/Codigo/images/check_icon_11x11.png";
                    }
                    else
                    {
                        node.ImageUrl = "/Codigo/images/pending.png";
                    }



                    break;
                case 3://tarea
                    if (node.ToolTip == "Finalizado")
                    {
                        node.ImageUrl = "/Codigo/images/check_icon_11x11.png";
                    }
                    else
                    {
                        node.ImageUrl = "/Codigo/images/pending.png";
                    }


                    break;
                case 4://entregable

                    if (node.ToolTip == "Finalizado")
                    {
                        node.ImageUrl = "/Codigo/images/check_icon_11x11.png";
                    }
                    else
                    {
                        node.ImageUrl = "/Codigo/images/pending.png";
                    }



                    break;
                case 5://empleado
                    node.ImageUrl = "/Codigo/images/im_msn.gif";

                    break;

                default:
                    break;
            }

            if (node.ChildNodes.Count > 0)
            {
                recorrerArbol(node.ChildNodes);

            }
        }

    }

    private void encontrarNodo(System.Web.UI.WebControls.TreeNodeCollection nodes, string strSearchValue)
    {
        foreach (System.Web.UI.WebControls.TreeNode node in nodes)
        {
            if (node.ValuePath == strSearchValue)
            {
                node.Selected = true;
                break;
            }
            else
            {
                if (node.ChildNodes.Count > 0)
                {
                    encontrarNodo(node.ChildNodes, strSearchValue);

                }
            }

        }
    }



    protected void Calendar_asignacion_SelectionChanged(object sender, EventArgs e)
    {
       
       
       
        //llamdo a servidor actualizar fecha aca
        string seleccionado = TreeView1.SelectedNode.ValuePath;

        //ctrlRegistro.EditarXMLEmp(TreeView1.SelectedNode.Parent.Parent.Parent.Parent.Parent.Value, TreeView1.SelectedNode.Parent.Parent.Parent.Parent.Value, TreeView1.SelectedNode.Parent.Parent.Parent.Value, TreeView1.SelectedNode.Parent.Parent.Value, TreeView1.SelectedNode.Parent.Value, TreeView1.SelectedNode.Value, TreeView1.SelectedNode.Text, fechaAsignacion_TextBox.Text);

        Error_Label.Text = "Estado de la Acción: ¡Edición Exitosa!";
        Error_Label.BackColor = colorExito;

        //CULPA DE CHI
        System.Threading.Thread.Sleep(500);
        string ruta = ""; //= ctrlRegistro.getRuta();
        tree_datasource.DataFile = ruta;
        TreeView1.DataSource = tree_datasource;
        TreeView1.DataBind();
        concatenarIconos();

        encontrarNodo(TreeView1.Nodes[0].ChildNodes, seleccionado);


    }
    protected void Fecha_Button_Click(object sender, EventArgs e)
    {
        if (Fecha_Calendar.Visible)
        {
            Fecha_Button.Text = "Cambiar";
        }
        else
        {
            Fecha_Button.Text = "Cancelar";
        }
        
        Fecha_Calendar.Visible = !Fecha_Calendar.Visible;

    }
    protected void Fecha_Calendar_SelectionChanged(object sender, EventArgs e)
    {
        Fecha_TextBox.Text = Fecha_Calendar.SelectedDate.ToString();
        Fecha_Button_Click(this, null);
    }
}
